home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Softdisk G-S 93
/
SGDS 93.2mg
/
SDGS.93
/
SDA93
/
A
/
M.GRAPH.FILE
(
.txt
)
< prev
next >
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
NeXTSTEP
RISC OS
UTF-8
Wrap
Applesoft BASIC Source Code
|
1989-05-22
|
4.7 KB
|
196 lines
|
[FC] Applesoft BASIC Program (0x0801)
10 INVERSE
20 PRINT CHR$(4)"PREFIX": INPUT CTPTH$: PRINT CHR$(4)"PREFIX"CTPTH$
6000 REM ======
6010 REM Diskfn
6020 REM ======
6030 CALL BOX,3,5,38,20
6040 PRINT " Disk Functions"
6050 PRINT
6060 PRINT "1. Catalog
6070 PRINT "2. Set Path"
6080 PRINT "3. Create Subdirectory"
6090 PRINT "4. Set Default Save Path"
6100 PRINT "5. Status"
6110 PRINT "6. Exit"
6120 PR$ = " Press the number of your choice.": GOSUB 50000
6130 GET K$
6140 IF K$ = ES$ THEN 6200
6150 IF NOT VAL(K$) THEN GOSUB 51000: GOTO 6120
6160 M2 = VAL(K$): IF M2 >6 THEN GOSUB 51000: GOTO 6120
6170 ON M2 GOSUB 31000,32000,33000,34000,35000
6180 IF M2 = 6 THEN 6200
6190 GOTO 6030
6200 ONERR GOTO 10000
6210 CALL BOX,11,10,18,3: PRINT " One moment...": PRINT CHR$(4)"CHAIN M.GRAPH.MAIN"
10000 CALL -3288
10010 POKE 216,0
10020 CALL BOX,5,5,30,15: PRINT : PRINT " FATAL ERROR."
10030 PRINT : PRINT " Missing a module."
10040 PRINT : PRINT " Press a key to exit."
10050 GET K$
10060 POKE 104,8: GOTO 150
31000 REM =======
31010 REM catalog
31020 REM =======
31030 CALL BOX,4,7,37,18
31040 FC = 0
31050 CC = 0
31060 PRINT " Catalog:"CTPTH$
31070 IF CTPTH$ < >"" THEN PRINT :K$ = CTPTH$: GOTO 31090
31080 PRINT CHR$(4)"PREFIX": INPUT K$
31090 ONERR GOTO 31230
31100 PRINT CHR$(4)"OPEN"K$",TDIR"
31110 PRINT CHR$(4)"READ"K$
31120 INPUT K$,K$,K$
31130 INPUT K$
31140 IF K$ = "" THEN PRINT CHR$(4)"CLOSE": GOTO 31200
31150 FC = FC +1
31160 PRINT LEFT$(K$,20)
31170 CC = CC +1
31180 IF CC = 12 THEN PR$ = "Press a key": GOSUB 50000: POKE 49168,0: WAIT 49152,128: POKE 49168,0: CALL BOX,4,7,37,18:CC = 0: PRINT " Catalog": PRINT : GOTO 31130
31190 GOTO 31130
31200 IF CC THEN PR$ = "Press a key": GOSUB 50000: GET K$
31210 IF NOT FC THEN PRINT " No files.":FC = 1:CC = 1: GOTO 31200: REM kludge to catch null cats
31220 RETURN
31230 CALL -3288: REM FIXERRS
31240 POKE 216,0
31250 PRINT CHR$(4)"CLOSE": GOTO 31200
32000 REM =======
32010 REM SETPATH
32020 REM =======
32030 CALL BOX,4,7,37,18
32040 PRINT " Set Path"
32050 PR$ = "Enter pathname or ,S#,D#": GOSUB 50000
32060 CALL BOX,12,10,19,7
32070 PRINT CHR$(20):H = 13:V = 11:W = 15:L = 64
32080 IF CTPTH$ = "" THEN PRINT CHR$(4)"PREFIX": INPUT RNPTH$:CTPTH$ = RNPTH$
32090 IN$ = CTPTH$
32100 GOSUB 54000
32110 ONERR GOTO 32170
32120 IF IN$ = "" THEN 32150
32130 PRINT CHR$(4)"PREFIX"IN$
32140 PRINT CHR$(4)"PREFIX": INPUT CTPTH$
32150 PRINT CHR$(4)"PREFIX"RNPTH$
32160 RETURN
32170 CALL -3288: REM FIXERRS
32180 POKE 216,0
32190 CALL BOX,4,7,37,18
32200 CALL BOX,12,10,19,7: PRINT : PRINT " Can't set that path."
32210 PR$ = "Press a key.": GOSUB 50000
32220 GET K$
32230 ONERR GOTO 32250
32240 GOTO 32150
32250 CALL BOX,12,10,19,7: PRINT : PRINT " Fatal error.": PRINT " Press a key.": GET K$: PRINT CHR$(4)"bye"
33000 REM ===================
33010 REM CREATE SUBDIRECTORY
33020 REM ===================
33030 CALL BOX,4,7,37,18
33040 PRINT " Create Subdirectory"
33050 PR$ = "Create what subdirectory?": GOSUB 50000
33060 CALL BOX,12,10,19,7
33070 PRINT CHR$(20):H = 13:V = 11:W = 15:L = 64
33080 IN$ = CTPTH$
33090 GOSUB 54000
33100 IF IN$ = "" THEN 33160
33110 ONERR GOTO 33170
33120 IF LEFT$(IN$,1) = "/" THEN PRINT CHR$(4)"create"IN$: GOTO 33140
33130 PRINT CHR$(4)"create"CTPTH$IN$
33140 CALL BOX,4,7,37,18: CALL BOX,12,10,19,7: PRINT : PRINT " Subdirectory": PRINT " created.":PR$ = "Press a key.": GOSUB 50000
33150 GET K$
33160 RETURN
33170 CALL -3288
33180 POKE 216,0
33190 CALL BOX,4,7,37,18: CALL BOX,12,10,19,7: PRINT : PRINT " Unable to": PRINT " create it."
33200 PR$ = "Press a key.": GOSUB 50000
33210 GOTO 33150
34000 REM ===========
34010 REM set default
34020 REM ===========
34030 CALL BOX,4,7,37,18
34040 PRINT " Set Default"
34050 K$ = CTPTH$: IF K$ = "" THEN K$ = SVPTH$
34060 FOR C1 = 1 TO 64:K$ = K$ +" ": NEXT :K$ = LEFT$(K$,64)
34070 FOR C1 = 1 TO 64: POKE 767 +C1, ASC( MID$ (K$,C1)): NEXT
34080 ONERR GOTO 34160
34090 PRINT CHR$(4)"BSAVE"SVPTH$"M.GRAPH.MAIN,A768,L64,B$10,TBAS"
34100 PRINT CHR$(4)"BSAVEM.GRAPH.MAIN,A768,L64,B$10,TBAS"
34110 PRINT : PRINT "The default save path is now"
34120 PRINT K$
34130 DFAULTPTH$ = K$
34140 PR$ = "Press a key": GOSUB 50000
34150 GET K$: RETURN
34160 CALL -3288
34170 POKE 216,0
34180 CALL BOX,4,7,37,18: CALL BOX,12,10,19,7: PRINT : PRINT " Unable to": PRINT " set default."
34190 PR$ = "Press a key.": GOSUB 50000
34200 GOTO 34150
35000 REM ======
35010 REM status
35020 REM ======
35030 CALL BOX,4,7,37,18
35040 PRINT " Pathname status:"
35050 PRINT
35060 PRINT " Default will set to:"
35070 PRINT " "CT$;: IF CT$ = "" THEN PRINT SVPTH$;
35080 PRINT
35090 PRINT " Mighty Graph will catalog:"
35100 PRINT " "CT$;: IF CT$ = "" THEN PRINT SVPTH$;
35110 PRINT
35120 PRINT " Mighty Graph will save files to:"
35130 PRINT " "DFAULTPTH$;: IF DFAULTPTH$ = "" THEN PRINT SVPTH$;
35140 PR$ = "Press a key.": GOSUB 50000
35150 GET K$
35160 RETURN
50000 REM ==========
50010 REM Prompt Box
50020 REM ==========
50030 W = LEN(PR$) +2
50040 CALL BOX,40 -W,21,W,3
50050 PRINT PR$
50060 RETURN
51000 REM ====
51010 REM Bell
51020 REM ====
51030 CALL PEEK(121) + PEEK(122) *256 +28: REM SPEED= DEL <UNKNOWN TOKEN> SPEED= <CTRL-0x01> DEL <UNKNOWN TOKEN> SPEED= <CTRL-0x02><CTRL-0x18> HGR2 <CTRL-0x14> PLOT 0 TAB( SPEED= <CTRL-0x02> DEL <UNKNOWN TOKEN> SPEED= $<CTRL-0x18> HGR2 <CTRL-0x08> PLOT 0 TAB( NOT <UNKNOWN TOKEN> = STR$`8H RIGHT$<CTRL-0x01> = <UNKNOWN TOKEN>h RIGHT$<CTRL-0x01> = <UNKNOWN TOKEN> ONERR <UNKNOWN TOKEN> -<CTRL-0x01><UNKNOWN TOKEN> RND = VAL:`
51040 RETURN
53000 REM ===============
53010 REM text print prmt
53020 REM ===============
53030 PRINT CHR$(4)"PR#0"
53040 NORMAL : TEXT : HOME : VTAB 12: HTAB 12
53050 PRINT "PRINTING... PLEASE WAIT.": INVERSE
53060 RETURN
54000 REM
54010 REM ****************************
54020 REM * *
54030 REM * NAME:OK INPUT *
54040 REM * PASS:V = VERT POSN *
54050 REM * PASS:H = HORIZ POSN *
54060 REM * PASS:W = WIDTH OF INPUT *
54070 REM * PASS:L = LENGTH OF INPUT *
54080 REM * PASS:IN$ = DEFAULT INPUT *
54090 REM * USES:T$,T,T1,T2,T3,T4,IN$*
54100 REM * RETN:IN$ *
54110 REM * *
54120 REM ****************************
54130 REM
54140 ONERR GOTO 54330
54150 IN$ = LEFT$(IN$,64)
54160 VTAB V: HTAB H: POKE 32,H -1: POKE 33,W +1: PRINT : VTAB V: HTAB 1: PRINT IN$;:T1 = PEEK(37) +1:T2 = PEEK(36) +H: PRINT CHR$(20);
54170 T3 = T2 -H:T4 = LEN(IN$)
54180 HTAB T2: VTAB T1: PRINT " ": HTAB T2: VTAB T1: PRINT "_"
54190 IF PEEK(49152) <128 THEN 54180
54200 GET T$: IF T$ = CHR$(13) THEN 54320
54210 IF T$ = CHR$(24) THEN FOR T = 1 TO LEN(IN$):T$ = CHR$(8): GOSUB 54270: NEXT : GOTO 54180
54220 IF T$ = CHR$(27) THEN FOR T = 1 TO LEN(IN$):T$ = CHR$(8): GOSUB 54270: NEXT : VTAB T1: HTAB T2: PRINT " ": GOTO 54320
54230 IF T$ = CHR$(8) OR T$ = CHR$(127) THEN GOSUB 54270: GOTO 54180
54240 IF T$ <" " OR T4 = L THEN 54180
54250 VTAB T1: HTAB T2: PRINT T$;:IN$ = IN$ +T$:T2 = T2 +1:T4 = T4 +1:T3 = T3 +1: IF T3 >W THEN T3 = 0:T2 = H:T1 = T1 +1
54260 GOTO 54180
54270 IF H = T2 THEN IF V = T1 THEN RETURN
54280 IF LEN(IN$) = 1 THEN IN$ = "": HTAB T2: VTAB T1: PRINT " ";:T2 = H:T1 = V:T4 = 0:T3 = 0: RETURN
54290 IN$ = LEFT$(IN$, LEN(IN$) -1): VTAB T1: HTAB T2: PRINT " ":T2 = T2 -1: IF T2 <H THEN T2 = H +W:T1 = T1 -1
54300 T3 = T3 -1: IF T3 <0 THEN T3 = W
54310 T4 = T4 -1: RETURN
54320 HTAB T2: VTAB T1: PRINT " ": POKE 216,0: RETURN
54330 CALL -3288: POKE 216,0: POKE 49168,0: GOTO 54140